home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 March: Reference Library / Dev.CD Mar 96 RL / Dev.CD Mar 96 RL.toast / Technical Documentation / develop / develop Issue 25 / develop Issue 25 code / Display Manager Sample / Source / aevt.c next >
Encoding:
C/C++ Source or Header  |  1995-12-19  |  3.6 KB  |  162 lines  |  [TEXT/MPCC]

  1. /***********************************************************************
  2. #
  3. #        aevt.c
  4. #
  5. #        Apple events handler.
  6. #
  7. #        Author: Michael Marinkovich
  8. #                Apple Developer Technical Support
  9. #
  10. #
  11. #        Modification History: 
  12. #
  13. #            6/4/95        MWM     Initial coding                     
  14. #            10/12/95    MWM        cleaned up
  15. #
  16. #        Copyright © 1992-95 Apple Computer, Inc., All Rights Reserved
  17. #
  18. #
  19. ***********************************************************************/
  20.  
  21. #include <AppleEvents.h>
  22. #include <Windows.h>
  23.  
  24. #include "App.h"
  25. #include "Proto.h"
  26.  
  27.  
  28. extern Boolean        gDone;
  29.  
  30.  
  31. //----------------------------------------------------------------------
  32. //
  33. //    AEInit - initialize all the core apple events
  34. //
  35. //
  36. //----------------------------------------------------------------------
  37.  
  38. OSErr AEInit(void)
  39. {    
  40.     OSErr        err = noErr;
  41.                     
  42.                                 //    install auto Open App
  43.     err = AEInstallEventHandler(kCoreEventClass, kAEOpenApplication, 
  44.                                 NewAEEventHandlerProc(DoAEOpenApp), 0L, false );
  45.                                                     
  46.     if (err == noErr)            // install auto Quit App
  47.         err = AEInstallEventHandler(kCoreEventClass, kAEQuitApplication, 
  48.                                     NewAEEventHandlerProc(DoAEQuitApp), 0L, false );
  49.         
  50.     if (err == noErr)            // install auto Open Document
  51.         err = AEInstallEventHandler(kCoreEventClass,kAEOpenDocuments,
  52.                                     NewAEEventHandlerProc(DoAEOpenDoc),0L,false);
  53.                                                         
  54.     if (err == noErr)            // install auto Print Document
  55.         err = AEInstallEventHandler(kCoreEventClass,kAEPrintDocuments,
  56.                                     NewAEEventHandlerProc(DoAEPrintDoc),0L,false);
  57.     
  58.                             
  59.     return err;
  60.                                                 
  61. }
  62.  
  63.  
  64. //----------------------------------------------------------------------
  65. //
  66. //    DoAEOpenApp - called by the Finder at launch time
  67. //
  68. //
  69. //----------------------------------------------------------------------
  70.  
  71. pascal OSErr DoAEOpenApp(AppleEvent event,AppleEvent reply,long refCon)
  72. {
  73.     #pragma unused( event, reply, refCon )
  74.  
  75.     (void)CreateWindow(128, nil, nil, nil, true,
  76.                         documentProc, kDocKind, (WindowPtr)-1, true, nil);
  77.                         
  78.     return noErr;
  79.         
  80. }
  81.  
  82.  
  83. //----------------------------------------------------------------------
  84. //
  85. //     DoAEQuitApp -    called when the Finder asks app to quit
  86. //
  87. //
  88. //----------------------------------------------------------------------
  89.  
  90. pascal OSErr DoAEQuitApp(AppleEvent event,AppleEvent reply,long refCon)
  91. {
  92.     #pragma unused( event, reply, refCon )
  93.  
  94.     // set the global quit flag
  95.     gDone = true;
  96.     
  97.     return noErr;
  98.         
  99. }
  100.  
  101.  
  102. //----------------------------------------------------------------------
  103. //
  104. //    DoAEOpenDoc - called when the Finder asks app to open a document
  105. //
  106. //
  107. //----------------------------------------------------------------------
  108.  
  109. pascal OSErr DoAEOpenDoc(AppleEvent event,AppleEvent reply,long refCon)
  110. {
  111.     #pragma unused( reply, refCon )
  112.     
  113.  
  114.     return noErr;
  115.  
  116. }
  117.                 
  118.                                         
  119. //----------------------------------------------------------------------
  120. //
  121. //    DoAEPrintDoc - called when the Finder asks app to print a document
  122. //
  123. //
  124. //----------------------------------------------------------------------
  125.  
  126. pascal OSErr DoAEPrintDoc(AppleEvent event,AppleEvent reply,long refCon)
  127. {
  128.     #pragma unused( reply, refCon )
  129.     
  130.  
  131.     return noErr;
  132.  
  133. }
  134.  
  135.  
  136. //----------------------------------------------------------------------
  137. //
  138. //    GotAEParams - make sure we got proper AE params for an Open 
  139. //                  Document from the Finder
  140. //
  141. //----------------------------------------------------------------------
  142.  
  143. OSErr GotAEParams(AppleEvent *appleEvent)
  144. {
  145.     OSErr            err;
  146.     DescType        type;
  147.     Size            size;
  148.     
  149.     err = AEGetAttributePtr(appleEvent,keyMissedKeywordAttr,
  150.                             typeWildCard,&type,nil,0,&size);
  151.                                             
  152.     if (err == errAEDescNotFound)
  153.         return(noErr);
  154.     
  155.     else
  156.         if (err == noErr)
  157.             return(errAEEventNotHandled);
  158.     
  159.     return err;
  160.  
  161.